﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Air_condition.DO
{
    [Serializable]
    class Construction
    {

        private string sname;
        private int sstructure;

        public int sStructure
        {
            get { return sstructure; }
            set { sstructure = value; }
        }
        private int scharacteristics;

        public int sCharacteristics
        {
            get { return scharacteristics; }
            set { scharacteristics = value; }
        }
        
        public string sName
        {
            get { return sname; }
            set { sname = value; }
        }
        public double dbarea;
        public double dbArea
        {
            get { return dbarea; }
            set { dbarea = value; }
        }
        private double dbwidth;

        public double dbWidth
        {
            get { return dbwidth; }
            set { dbwidth = value; }
        }
        private double dblength;

        public double dbLength
        {
            get { return dblength; }
            set { dblength = value; }
        }

        protected double dbheatTransferCoefficient;
        public double dbHeatTransferCoefficient
        {
            get { return dbheatTransferCoefficient; }
            set { dbheatTransferCoefficient = value; }
        }

        protected double dbtemperatureDiff;
        public double dbTemperatureDiff
        {
            get { return dbtemperatureDiff; }
            set { dbtemperatureDiff = value; }
        }
        //  Tính hiệu nhiệt độ dư
        public virtual void CalculateTemperatureDiff(double dbinsideRoomTemp, double dboutsideRoomTemp)
        {
            dbtemperatureDiff = dboutsideRoomTemp - dbinsideRoomTemp;
        }

        // Tính truyền nhiệt qua kết cấu bao che Q2 bao gồm wall, ceilling, floor.
        public virtual double CalculateConstructionHeatTransfer(double dbinsideRoomTemp, double dboutsideRoomTemp)
        {
            CalculateTemperatureDiff(dbinsideRoomTemp, dboutsideRoomTemp);
            //  dbare user nhập
            //  Đối với kết cấu bao che là wall thì có công thức tính hiệu nhiệt độ dư và hệ số truyền nhiệt riêng bên class wall
            //  Đối với kết cấu bao che là ceilling và floor thì hiệu nhiệt độ dư bằng nhiệt độ bên ngoài trừ nhiệt độ bên trong 
            //  và hệ số truyền nhiệt lấy từ database
            return dbarea * dbheatTransferCoefficient * dbtemperatureDiff;
            
        }

    }
}
